//---------------------------------------------------------------------------- // File: C3DVectors.h // Class: C3DVectors // Type: Common Vectors // Author: Ken Anderson // Date: 11/8/04 // Desc: The vector class and some functionality. // Required headers: // 1. Common.h == Contains common definitions & typedefs. //---------------------------------------------------------------------------- #include "Common.h" //2-D Vectors class C3DVector2 { public: //Variable Members float x,y; //Constructors & destructors C3DVector2(){}; C3DVector2(const float* pf); C3DVector2(float fx, float fy); ~C3DVector2(){}; //casting operator float* (); operator const float* () const; //assignment operators C3DVector2& operator += ( const C3DVector2& ); C3DVector2& operator -= ( const C3DVector2& ); C3DVector2& operator *= ( float ); C3DVector2& operator /= ( float ); // unary operators C3DVector2 operator + () const; C3DVector2 operator - () const; // binary operators C3DVector2 operator + ( const C3DVector2& ) const; C3DVector2 operator - ( const C3DVector2& ) const; C3DVector2 operator * ( float ) const; C3DVector2 operator / ( float ) const; friend C3DVector2 operator * ( float, const C3DVector2& ); bool operator == ( const C3DVector2& ) const; bool operator != ( const C3DVector2& ) const; float Length(void); float LengthSq(void); }; //3-D Vector class C3DVector3 { public: //Variable Members float x,y,z; //Constructors & destructors C3DVector3(){}; C3DVector3(const float* pf); C3DVector3(float fx, float fy, float fz); ~C3DVector3(){}; //casting operator float* (); operator const float* () const; //assignment operators C3DVector3& operator += ( const C3DVector3& ); C3DVector3& operator -= ( const C3DVector3& ); C3DVector3& operator *= ( float ); C3DVector3& operator /= ( float ); // unary operators C3DVector3 operator + () const; C3DVector3 operator - () const; // binary operators C3DVector3 operator + ( const C3DVector3& ) const; C3DVector3 operator - ( const C3DVector3& ) const; C3DVector3 operator * ( float ) const; C3DVector3 operator / ( float ) const; friend C3DVector3 operator * ( float, const C3DVector3& ); bool operator == ( const C3DVector3& ) const; bool operator != ( const C3DVector3& ) const; float Length(); float LengthSq(); }; //4-D Vector class C3DVector4 { public: //Variable members. float x,y,z,w; //Constructors & destructors C3DVector4(){}; C3DVector4(const float* pf); C3DVector4(float fx, float fy, float fz, float fw); ~C3DVector4(){}; //casting operator float* (); operator const float* () const; //assignment operators C3DVector4& operator += ( const C3DVector4& ); C3DVector4& operator -= ( const C3DVector4& ); C3DVector4& operator *= ( float ); C3DVector4& operator /= ( float ); // unary operators C3DVector4 operator + () const; C3DVector4 operator - () const; // binary operators C3DVector4 operator + ( const C3DVector4& ) const; C3DVector4 operator - ( const C3DVector4& ) const; C3DVector4 operator * ( float ) const; C3DVector4 operator / ( float ) const; friend C3DVector4 operator * ( float, const C3DVector4& ); bool operator == ( const C3DVector4& ) const; bool operator != ( const C3DVector4& ) const; float Length(); float LengthSq(); };